Enigma Amiga RunGli articoli di EAR - Grafica


Lightwave e La gestione degli oggetti del Layout

di Paolo Griselli (griselli@skylink.it)

Bentornati all'appuntamento con la rubrica dedicata a Lightwave. Questo mese ampio spazio è stato dedicato ad un tutorial molto particolare: la creazione di un paradosso percettivo con Lightwave. Con la scusa di dover ricreare un effetto ottico tutt'altro che banale, avremo modo di spaziare sia nel Modeler sia nel Layout, utilizzando tool dei più disparati generi. Per quanto riguarda la sezione "istituzionale" della rubrica, queto mese si parlerà di come il Layout tratti gli oggetti sotto un punto di vista leggermente differente. Si parlerà parecchio di geometrie, dissolvenze e di deformazioni Free Form. Avrete così modo di scoprire alcune delle particolarità che distinguono Lightwave da un "semplice" modellatore 3D. Prima di lasciarvi al corso ed al BeBop, rinnoviamo l'invito a scrivere (via e-mail): buona parte di quanto fino ad oggi è comparso su queste pagine è frutto di consigli, richieste ed osservazioni pervenuteci in redazione. Buon proseguimento.

Layout: Pannello Objects

La gestione degli oggetti avviene nel Layout attraverso il pannello Objects. Nonostante il suo utilizzo sia stato dato per scontato nei vari tutorial da noi proposti, annovera delle funzioni molto interessanti e tutt'altro che banali. Non dimentichiamoci comunque della sua funzione fondamentale che poi è quella di permettere l'aggiunta o l'eliminazione di oggetti dalla scena. E' proprio da qui che partiremo per la nostra analisi. La prima parte del pannello è totalmente dedicata ad operazioni di input-output di oggetti nello spazio del Layout. Partendo dall'alto troviamo Clear All Object, un tasto a nostro parere alquanto autoesplicativo. Autoesplicativo è oltremodo Load Object: non perderemo altro tempo su queste funzioni. Il tasto Load from scene consente di caricare nella scena corrente tutti gli oggetti presenti in una scena in precedenza salvata, mantenendo intatti vincoli gerarchici, attributi di superficie e posizionamento. Questa funzione è estremamente utile quando si vogliono duplicare complicate gerarchie di oggetti, ad esempio catene cinematiche (es:pistone, biella, volano), senza dover impazzire a ricreare i giusti movimenti. Per esempio, se volessimo simulare in animazione 12 pistoni in movimento, dovremo procedere a costruire la prima catena (relativa al primo cilindro) con tanto di movimento. Occorrerà poi salvare la scena e attivare il pannello Objects. Con la funzione Load From Scene caricheremo tutta la struttura che verrà così assommata alla precedente. Ripetendo per altre 10 volte il procedimento avremo i nostri dodici pistoni pronti per essere animati. Avremo modo di illustrare più accuratamente questo procedimento in un prossimo tutorial. Save All Objects è una funzione estremamente importante ed utile. Permette di salvare tutti gli oggetti presenti nel Layout, mantenendo invariata la geometria originale risalente al momento del primo caricamento, ma con gli attributi di superficie aggiornati alla sessione di lavoro corrente. Gli oggetti, infatti, arrivano per la prima volta nel Layout privi di caratteristiche di superficie. Spesso capita di passare ore a definire un materiale appropriato, dimenticandosi però di salvarlo prima di uscire dal programma. Vi ricordiamo che salvare una scena non implica il salvataggio degli attributi di superficie degli oggetti in essa contenutAdd Null Object permette di aggiungere un oggetto nullo, ovvero privo di poligoni, nella scena. Tali oggetti sono utili come target per camera e luci, e come parent (oggetti padre/figli) in gerarchie (cinematiche o meno). Sulla parte destra del pannello troviamo un semplice riferimento statistico che permette la valutazione del peso degli oggetti presenti nella scena.

Oggetto corrente

La seconda sezione del pannello è ancora dedicata alla gestione degli oggetti in senso stretto. Questa volta non è la totalità degli oggetti ad essere considerata, ma un solo oggetto corrente, definibile con l'apposito popup. Clear Objectcancella l'oggetto corrente dalla scena. Replace Object permette invece di sostituirlo con un altro tramite una semplice finestra di dialogo. Quest'ultima funzione, per quanto banale, è estremamente utile. Spesso infatti capita di dover organizzare scene complesse con oggetti molto definiti e quindi pesanti (in termini di poligoni e punti). Per velocizzare le operazioni è comodo utilizzare per il setup della scena oggetti di ridotta definizione (più "leggeri"), sostituibili in un secondo tempo con le versioni definitive degli attori. Con Replace Object questa operazione diventa estremamente veloce. Save Objects si comporta esattamente come Save All Objects, vista prima. Save Trasformed, invece, permette il salvataggio dell'oggetto così come risulta essere ne Layout. Vengono cioè memorizzati eventuali movimenti o ridimensionamenti rispetto all'oggetto caricato in origine. Clone Object permette di aggiungere un numero a piacere di copie dello stesso oggetto. Purtroppo non è prevista la definizione di un offset. Questo significa che le copie saranno sovrapposte all'oggetto originale.

Free Form Deformation

No, non è un nuovo tool di Lightwave, ma bensì un gruppo di funzioni da tempo presenti nel Layout in grado di modificare la geomentria di un oggetto alla stregua di un Free Form Tool. Partiamo da Object Skeleton. Alla pressione di tale tasto apparirà un ulteriore pannello dedicato all'aggiunta e controllo di Bones (ossa). Le Bones possono essere associate ad un oggetto (o a parti di esso) e agiscono entro un'area definibile a piacimento. La loro funzione è quella di permettere una semplice gestione delle deformazioni complesse di un oggetto. Tramite una struttura di bones è ad esempio possibile deformare realisticamente un braccio costituito da un'unica mesh di poligoni. Anche qui avremo modo di spaziare nell'argomento con un apposito tutorial. Displacement Map è una funzione potentissima, tanto da essere invidiata da molti programmi per Workstation. In sostanza permette di modificare la geometria dell'oggetto corrente tramite l'applicazione di una texture (parametrica o bitmap), che verrà utilizzata come mappa di intensità della deformazione locale. Immaginate di voler simulare una superficie ondosa, anche in movimento. Procuratevi un piano composto da diverse sezioni di poligoni triangolari. Importatelo nel Layout e assegnategli come displacement map la texture Ripples. Definendo asse, dimensioni, intensità e velocità potrete facilmente ottenere un realistico set di onde, anche animate. La restante parte di questa sezione è dedicata al morphing. Come ogni programma di grafica 3D che si rispetti, anche Lightwave dispone di una potente funzione di morphing, utile per modificare la geometria di un ogetto al fine di renderla coincidente con quella di un oggetto target. Tramite semplici accorgimenti è possibile eseguire il morphing con un numero a picere di target object. Predisporre un morphing è abbastanza semplice. Occorre caricare nel Layout almeno due oggetti: uno sarà l'oggetto di partenza, l'altro il target. Entrambi dovranno condividere lo stesso numero di punti e poligoni. Nel pannello Objects andrà selezionato come ogetto corrente l'oggetto di partenza, mentre nel popup Metamorph Target, l'oggetto d'arrivo. Modificando il parametro Metamorph Amount definirete di quanto il primo oggetto dovrà essere mutato nell'altro. Nel caso voleste animare il tutto dovrete fare uso dell'apposito tasto Envelope posto a lato. Un ultimo oaccorgimento: il target object non dovrà essere visibile nella scena: esso infatti è solo un riferimento per l'oggetto di partenza. Per eliminarlo (seppure solo visivamente) occorre impostare la sua dissolvenza a 100% (Object Dissolve) dopo, chiaramente, averlo selezionato come oggetto corrente. E' possibile mutare, oltre alla geometria, anche gli attributi di superficie dell'oggetto. Per fare ciò è sufficiente attivare l'apposito gadget, Morph Surface. Sia le funzioni Skeleton che Morphpossono costituire un valido strumento di modellazione. Una volta modificato opportunamente un oggetto con questi due sofisticati tool, è possibile salvarlo, mantenendo intatta la nuova geometria, con il detto tasto Save Transformed. Potrete poi apportare le modifiche finali nel Modeler.

Controlli di visibilità

Questa sezione del pannello raccoglie una serie di controlli utili per modificare la modalità di visualizzazione delle componenti geometriche dell'oggetto. Partiamo con Object Dissolve. Come già visto, questa funzione permette di rendere invisibile (o trasparente) un oggetto consentendo, oltre al Morphing, altri effetti alquanto appariscenti, specie in animazione. Un controllo dell'Envelope consente, ancora, di controllare l'evolversi della dissolvenza nel tempo. E' possibile impostare una dissolvenza anche in base alla distanza dalla camera con la funzione Distance Dissolve, in concerto con il parametro Maximum Distance. E' quest'ultimo che definesce la distanza al raggiungere della quale la dissolvenza sarà massima. Il gadget Clip Map permette di utilizzare una texture (procedurale o bitmap) per tagliare lungo un profilo l'oggetto corrente. L'immagine verrà utilizzata in modo che i pixel con massima intensità luminosa taglieranno la parte di oggetto sulla quale sono mappati. Effetti molto interessanti sono ottenibili assignando come clip map animata una texture procedurale (come Fractal Noise o Ripples). Immaginate ad esempio un volto umano tagliuzzato dinamicamente da un'opportuna clip map animata. La seconda parte della sezione è dedicata alla gestione della visibilità delle particelle e dei poligoni. Modificare la dimensione di un poligono con la funzione Polygon Sizenon implica il ridimensionamento dell'intero oggetto, ma solo dei pannelli che lo compongono, rispetto al loro centroide. Questa funzione è spesso utilizzata per la simulazione di esplosioni alquanto realistiche rispetto alla velocità operativa con la quale sono state impostate. Particle/Line Sizeè un parametro che controlla sia i poligoni a singolo punto, sia le edges, ovvero i segmenti componenti i poligoni. Entrambe queste entità sono visualizzabili con Lightwave e consentono di ottenere effetti quali campi stellati, pioggia, strutture portanti molto complesse, ed altro ancora. Il vantaggio sta nella estrema velocità impiegata per il loro rendering da Lightwave. Essendo entità monodimensionali necessitano di un controllo specifico per la visualizzazione. Tale controllo è dato appunto da questa funzione. Polygon Edgesattivava la visualizzazione degli spigoli componenti un oggetto. Tramite Edge Colorè possibile assegnare ad esse un colore specifico.

Ombre, Ray Tracing e Fog

L'ultima sezione del pannello Objects offre alcune utili funzioni rivolte all'ottimizzazione dei tempi di rendering e, chiaramente, dell'impatto visivo finale. Self Shadow, Cast Shadow e Receive Shadow permettono di controllare l'effetto "ombra riportata" secondo diversi punti di vista. Il primo consente, se attivato, all'oggetto di proiettare ombre su se stesso. Il secondo, più generico, controlla la proiezione di ombre dell'oggetto corrente su tutto l'ambinete della scena. Il terzo controlla le proiezioni di terzi oggetti sull'oggetto corrente. Unseen by Rays attiva (o disattiva) l'utilizzo dell'algoritmo di Ray Tracing relativamente all'oggetto corrente. E' molto utile per diminuire i tempi di calcolo nei casi in cui sia inutile un calcolo così impegnativo come il Trace per la scena in corso. Finiamo con Unaffected by Fog che risolve i problemi di visualizzazione di un oggetto in presenza di nebbia (rendendolo pienamente visibile). Vi ricordiamo che l'attivazione di ombre riportate è altresì controllata dal pannello Lights; oltremodo l'attivazione del Ray Tracing è controllata dal pannello Camera.

Questo articolo è copyright G.R.Edizioni. Enigma Amiga Run (C) 1996-97


Copyright Enigma Amiga Run - Enigma Amiga Run it's a G.R.Edizioni publications - Page by Michele Iurillo for contact us mailto yuri@skylink.it